<?php
/**
 * 核心公用方法
 *
 * @copyright  Copyright (c) 2009 - 2010 6PiMa Network Technology Co., Ltd. <http://www.6pima.com>
 * @license    GNU General Public License 2.0 {@link http://www.gnu.org/licenses/gpl-2.0.html}
 * @package    Core
 * @category   Moca
 * @author     Allen <movoin@gmail.com>
 * @version    $Id: Common.php 4 2010-06-02 03:08:52Z movoin $
 **/

class Moca_Common
{
    /** 程序版本 */
    const VERSION = '0.1/10.6.1';

    /**
     * 默认编码
     *
     * @access public
     * @var string
     */
    public static $charset = 'UTF-8';

    /**
     * 按规则载入文件
     *
     * @param string $filename 文件名
     * @access public
     * @return boolean
     */
    public static function loadFile($filename)
    {
        /**
         * 未指定文件，直接返回 false
         */
        if (!$filename) {
            //@TODO 抛出异常
            return false;
        }
        /**
         * 合并文件路径
         */
        $path = __MOCA_DIR__ . DS . str_replace('_', DS, $filename) . '.php';
        /**
         * 文件不存在，返回 false
         */
        if (!file_exists($path)) {
            //@TODO 抛出异常
            return false;
        }
        /**
         * 载入文件
         */
        require_once($path);
        /**
         * 返回 true
         */
        return true;
    }

    /**
     * 程序初始化方法
     *
     * @access public
     * @return void
     */
    public static function init()
    {
        /** 兼容php6 */
        if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
            $_GET = self::stripslashesDeep($_GET);
            $_POST = self::stripslashesDeep($_POST);
            $_COOKIE = self::stripslashesDeep($_COOKIE);

            reset($_GET);
            reset($_POST);
            reset($_COOKIE);
        }
    }

    /**
     * 递归去掉数组反斜线
     *
     * @access public
     * @param mixed $value
     * @return mixed
     */
    public static function stripslashesDeep($value)
    {
        return is_array($value) ? array_map(array('Typecho_Common', 'stripslashesDeep'), $value) : stripslashes($value);
    }
}

